package lk.icta.common.dao;

import lk.icta.common.entity.RailwayProtectionZone;
import lk.icta.user.entity.User;

import java.util.Map;

/**
 * @author Supun Viraj Rathanayaka
 */
public interface RailwayProtectionZoneDAO {

    /**
     * Returns All Railway Protection Zones
     *
     * @param language the selected language
     * @param user     the user requesting the full Railway Protection Zone name list
     * @return a Map of all Railway Protection Zones for the given language along with the zone ID
     */
    Map<Integer,String> getAllRailwayProtectionZonesByUserLanguage(String language, User user);

    /**
     * Returns All Railway Protection Zones By Railway Track Id
     *
     * @param trackId  id of the railway track
     * @param language the selected language
     * @param user     the user requesting the full Railway Protection Zone name list
     * @return a Map of all Railway Protection Zones for the given track id in provided language
     */
    Map<Integer,String> getAllRPZoneNamesByTrackId(int trackId, String language, User user);

    RailwayProtectionZone getRPZoneById(int i);
}
